package com.hivemc.chunker.conversion.encoding.bedrock.base.reader.pretransform.handlers;

import com.google.common.collect.ImmutableMap;
import com.hivemc.chunker.conversion.handlers.pretransform.Edge;
import com.hivemc.chunker.conversion.handlers.pretransform.manager.handler.block.BlockPreTransformHandler;
import com.hivemc.chunker.conversion.intermediate.column.ChunkerColumn;
import com.hivemc.chunker.conversion.intermediate.column.chunk.identifier.ChunkerBlockIdentifier;
import com.hivemc.chunker.conversion.intermediate.column.chunk.identifier.type.block.ChunkerBlockType;
import com.hivemc.chunker.conversion.intermediate.column.chunk.identifier.type.block.ChunkerVanillaBlockType;
import com.hivemc.chunker.conversion.intermediate.column.chunk.identifier.type.block.states.vanilla.VanillaBlockStates;
import com.hivemc.chunker.conversion.intermediate.column.chunk.identifier.type.block.states.vanilla.types.NoteBlockInstrument;

import java.util.Collections;
import java.util.Map;
import java.util.Set;

/**
 * Calculates the instrument that should be used for the note block.
 */
public class BedrockNoteBlockPreTransformHandler implements BlockPreTransformHandler {
    public static final Map<ChunkerBlockType, NoteBlockInstrument> INSTRUMENTS = ImmutableMap.<ChunkerBlockType, NoteBlockInstrument>builder()
            .put(ChunkerVanillaBlockType.STONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GRANITE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_GRANITE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DIORITE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_DIORITE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ANDESITE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_ANDESITE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COBBLESTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OAK_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_MOSAIC, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BEDROCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SAND, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.SUSPICIOUS_SAND, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.RED_SAND, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.GRAVEL, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.SUSPICIOUS_GRAVEL, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.GOLD_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_GOLD_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.IRON_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_IRON_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COAL_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_COAL_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.NETHER_GOLD_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OAK_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_ROOTS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_BLOCK, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_SPRUCE_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_BIRCH_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_JUNGLE_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_ACACIA_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_CHERRY_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_DARK_OAK_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_PALE_OAK_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_OAK_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_MANGROVE_LOG, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_BAMBOO_BLOCK, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.OAK_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_OAK_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_SPRUCE_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_BIRCH_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_JUNGLE_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_ACACIA_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_CHERRY_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_DARK_OAK_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_PALE_OAK_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_MANGROVE_WOOD, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.LAPIS_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_LAPIS_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DISPENSER, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CUT_SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.NOTE_BLOCK, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WHITE_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.ORANGE_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.MAGENTA_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.YELLOW_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.LIME_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.PINK_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.GRAY_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.CYAN_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.PURPLE_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.BLUE_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.BROWN_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.GREEN_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.RED_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.BLACK_WOOL, NoteBlockInstrument.GUITAR)
            .put(ChunkerVanillaBlockType.GOLD_BLOCK, NoteBlockInstrument.BELL)
            .put(ChunkerVanillaBlockType.IRON_BLOCK, NoteBlockInstrument.IRON_XYLOPHONE)
            .put(ChunkerVanillaBlockType.BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BOOKSHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHISELED_BOOKSHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MOSSY_COBBLESTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OBSIDIAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SPAWNER, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OAK_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHEST, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DIAMOND_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_DIAMOND_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRAFTING_TABLE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.FURNACE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OAK_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.OAK_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.COBBLESTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OAK_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.OAK_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.OAK_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_WALL_HANGING_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STONE_PRESSURE_PLATE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OAK_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.REDSTONE_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_REDSTONE_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CLAY, NoteBlockInstrument.FLUTE)
            .put(ChunkerVanillaBlockType.JUKEBOX, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.OAK_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.NETHERRACK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SOUL_SAND, NoteBlockInstrument.COW_BELL)
            .put(ChunkerVanillaBlockType.BASALT, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BASALT, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GLOWSTONE, NoteBlockInstrument.PLING)
            .put(ChunkerVanillaBlockType.WHITE_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.ORANGE_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.MAGENTA_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.YELLOW_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.LIME_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.PINK_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.GRAY_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.CYAN_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.PURPLE_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.BLUE_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.BROWN_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.GREEN_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.RED_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.BLACK_STAINED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.OAK_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STONE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MOSSY_STONE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRACKED_STONE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_STONE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MUD_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BROWN_MUSHROOM_BLOCK, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.RED_MUSHROOM_BLOCK, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MUSHROOM_STEM, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.PUMPKIN, NoteBlockInstrument.DIDGERIDOO)
            .put(ChunkerVanillaBlockType.OAK_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.STONE_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MUD_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.NETHER_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.NETHER_BRICK_FENCE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.NETHER_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ENCHANTING_TABLE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.END_PORTAL_FRAME, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.END_STONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SANDSTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.EMERALD_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_EMERALD_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ENDER_CHEST, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.EMERALD_BLOCK, NoteBlockInstrument.BIT)
            .put(ChunkerVanillaBlockType.SPRUCE_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BEACON, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.COBBLESTONE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MOSSY_COBBLESTONE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SKELETON_SKULL, NoteBlockInstrument.SKELETON)
            .put(ChunkerVanillaBlockType.WITHER_SKELETON_SKULL, NoteBlockInstrument.WITHER_SKELETON)
            .put(ChunkerVanillaBlockType.ZOMBIE_HEAD, NoteBlockInstrument.ZOMBIE)
            .put(ChunkerVanillaBlockType.PLAYER_HEAD, NoteBlockInstrument.CUSTOM_HEAD)
            .put(ChunkerVanillaBlockType.CREEPER_HEAD, NoteBlockInstrument.CREEPER)
            .put(ChunkerVanillaBlockType.DRAGON_HEAD, NoteBlockInstrument.DRAGON)
            .put(ChunkerVanillaBlockType.PIGLIN_HEAD, NoteBlockInstrument.PIGLIN)
            .put(ChunkerVanillaBlockType.TRAPPED_CHEST, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DAYLIGHT_DETECTOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.NETHER_QUARTZ_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.QUARTZ_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_QUARTZ_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.QUARTZ_PILLAR, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.QUARTZ_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DROPPER, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.WHITE_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ORANGE_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MAGENTA_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.YELLOW_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIME_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PINK_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GRAY_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CYAN_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PURPLE_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLUE_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BROWN_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GREEN_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLACK_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.WHITE_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.ORANGE_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.MAGENTA_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.YELLOW_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.LIME_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.PINK_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.GRAY_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.CYAN_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.PURPLE_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.BLUE_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.BROWN_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.GREEN_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.RED_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.BLACK_STAINED_GLASS_PANE, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.ACACIA_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_MOSAIC_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PRISMARINE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PRISMARINE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DARK_PRISMARINE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PRISMARINE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PRISMARINE_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DARK_PRISMARINE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PRISMARINE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PRISMARINE_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DARK_PRISMARINE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SEA_LANTERN, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.HAY_BLOCK, NoteBlockInstrument.BANJO)
            .put(ChunkerVanillaBlockType.TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PACKED_ICE, NoteBlockInstrument.CHIME)
            .put(ChunkerVanillaBlockType.WHITE_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ORANGE_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MAGENTA_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.YELLOW_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.LIME_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PINK_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.GRAY_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CYAN_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PURPLE_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BLUE_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BROWN_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.GREEN_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.RED_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BLACK_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WHITE_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ORANGE_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MAGENTA_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.YELLOW_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.LIME_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PINK_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.GRAY_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CYAN_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PURPLE_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BLUE_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BROWN_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.GREEN_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.RED_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BLACK_WALL_BANNER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.RED_SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_RED_SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CUT_RED_SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_SANDSTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.OAK_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_MOSAIC_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_STONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SANDSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CUT_SANDSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PETRIFIED_OAK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COBBLESTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.STONE_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MUD_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.NETHER_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.QUARTZ_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_SANDSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CUT_RED_SANDSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PURPUR_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_STONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_QUARTZ, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_RED_SANDSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SPRUCE_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.ACACIA_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PURPUR_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PURPUR_PILLAR, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PURPUR_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.END_STONE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MAGMA_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_NETHER_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BONE_BLOCK, NoteBlockInstrument.XYLOPHONE)
            .put(ChunkerVanillaBlockType.OBSERVER, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.WHITE_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ORANGE_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MAGENTA_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.YELLOW_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIME_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PINK_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GRAY_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CYAN_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PURPLE_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLUE_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BROWN_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GREEN_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLACK_GLAZED_TERRACOTTA, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.WHITE_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ORANGE_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MAGENTA_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.YELLOW_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIME_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PINK_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GRAY_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CYAN_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PURPLE_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLUE_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BROWN_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GREEN_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLACK_CONCRETE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.WHITE_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.ORANGE_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.MAGENTA_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.LIGHT_BLUE_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.YELLOW_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.LIME_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.PINK_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.GRAY_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.LIGHT_GRAY_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.CYAN_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.PURPLE_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.BLUE_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.BROWN_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.GREEN_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.RED_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.BLACK_CONCRETE_POWDER, NoteBlockInstrument.SNARE)
            .put(ChunkerVanillaBlockType.DEAD_TUBE_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BRAIN_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BUBBLE_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_FIRE_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_HORN_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUBE_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BRAIN_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BUBBLE_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.FIRE_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.HORN_CORAL_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_TUBE_CORAL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BRAIN_CORAL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BUBBLE_CORAL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_FIRE_CORAL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_HORN_CORAL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_TUBE_CORAL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BRAIN_CORAL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BUBBLE_CORAL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_FIRE_CORAL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_HORN_CORAL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_TUBE_CORAL_WALL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BRAIN_CORAL_WALL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_BUBBLE_CORAL_WALL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_FIRE_CORAL_WALL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEAD_HORN_CORAL_WALL_FAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CONDUIT, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.POLISHED_GRANITE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_RED_SANDSTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MOSSY_STONE_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_DIORITE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MOSSY_COBBLESTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.END_STONE_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.STONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_SANDSTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_QUARTZ_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GRANITE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ANDESITE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_NETHER_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_ANDESITE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DIORITE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_GRANITE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_RED_SANDSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MOSSY_STONE_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_DIORITE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MOSSY_COBBLESTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.END_STONE_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_SANDSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_QUARTZ_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GRANITE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ANDESITE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_NETHER_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_ANDESITE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DIORITE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.PRISMARINE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_SANDSTONE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MOSSY_STONE_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GRANITE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.STONE_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.MUD_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.NETHER_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ANDESITE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RED_NETHER_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SANDSTONE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.END_STONE_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DIORITE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.LOOM, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BARREL, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SMOKER, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLAST_FURNACE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CARTOGRAPHY_TABLE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.FLETCHING_TABLE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.LECTERN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SMITHING_TABLE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STONECUTTER, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CAMPFIRE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SOUL_CAMPFIRE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_STEM, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_WARPED_STEM, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_HYPHAE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_WARPED_HYPHAE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_NYLIUM, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRIMSON_STEM, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_CRIMSON_STEM, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_HYPHAE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.STRIPPED_CRIMSON_HYPHAE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_NYLIUM, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRIMSON_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_PLANKS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_SLAB, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_PRESSURE_PLATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_FENCE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_TRAPDOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_FENCE_GATE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_STAIRS, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_DOOR, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_WALL_SIGN, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.COMPOSTER, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BEE_NEST, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BEEHIVE, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRYING_OBSIDIAN, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RESPAWN_ANCHOR, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLACKSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLACKSTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLACKSTONE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.BLACKSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRACKED_POLISHED_BLACKSTONE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_POLISHED_BLACKSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.GILDED_BLACKSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_PRESSURE_PLATE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_BLACKSTONE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_NETHER_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRACKED_NETHER_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.QUARTZ_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_TUFF, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_TUFF_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_TUFF_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_TUFF_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_TUFF, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TUFF_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_TUFF_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CALCITE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TINTED_GLASS, NoteBlockInstrument.HAT)
            .put(ChunkerVanillaBlockType.COPPER_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_COPPER_ORE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POINTED_DRIPSTONE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DRIPSTONE_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COBBLED_DEEPSLATE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COBBLED_DEEPSLATE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COBBLED_DEEPSLATE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.COBBLED_DEEPSLATE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_DEEPSLATE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_DEEPSLATE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_DEEPSLATE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.POLISHED_DEEPSLATE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_TILES, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_TILE_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_TILE_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_TILE_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.DEEPSLATE_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_DEEPSLATE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRACKED_DEEPSLATE_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CRACKED_DEEPSLATE_TILES, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.SMOOTH_BASALT, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RAW_IRON_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RAW_COPPER_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RAW_GOLD_BLOCK, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.REINFORCED_DEEPSLATE, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.TRIAL_SPAWNER, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CREAKING_HEART, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RESIN_BLOCK, NoteBlockInstrument.FLUTE)
            .put(ChunkerVanillaBlockType.RESIN_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RESIN_BRICK_SLAB, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RESIN_BRICK_STAIRS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.RESIN_BRICK_WALL, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.CHISELED_RESIN_BRICKS, NoteBlockInstrument.BASEDRUM)
            .put(ChunkerVanillaBlockType.ACACIA_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BAMBOO_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.BIRCH_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CHERRY_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.CRIMSON_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.DARK_OAK_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.JUNGLE_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.MANGROVE_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.OAK_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.PALE_OAK_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.SPRUCE_SHELF, NoteBlockInstrument.BASS)
            .put(ChunkerVanillaBlockType.WARPED_SHELF, NoteBlockInstrument.BASS)
            .build();

    @Override
    public Set<Edge> getRequiredEdges(ChunkerColumn column, int x, int y, int z, ChunkerBlockIdentifier blockIdentifier) {
        return Collections.emptySet();
    }

    @Override
    public ChunkerBlockIdentifier handle(ChunkerColumn column, Map<Edge, ChunkerColumn> neighbours, int x, int y, int z, ChunkerBlockIdentifier blockIdentifier) {
        // Fetch the block below
        ChunkerBlockIdentifier below = getRelative(column, neighbours, x, y, z, Direction.DOWN);
        NoteBlockInstrument instrument = INSTRUMENTS.getOrDefault(below.getType(), NoteBlockInstrument.HARP);

        // Update with the instrument
        return blockIdentifier.copyWith(VanillaBlockStates.NOTE_BLOCK_INSTRUMENT, instrument);
    }
}
